package com.ruoyi.project.erp.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;

/**
 * 工时审批流对象 worklog_approval
 * 
 * @author ruoyi
 * @date 2025-06-19
 */
public class WorklogApproval extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 工时ID */
    @Excel(name = "工时ID")
    private Long worklogId;

    /** 审批层级（1=主管，2=销售） */
    @Excel(name = "审批层级", readConverterExp = "1==主管，2=销售")
    private Long step;

    /** 审批人ID */
    @Excel(name = "审批人ID")
    private String approverId;

    /** 状态(pending, approved, rejected, returned) */
    @Excel(name = "状态(pending, approved, rejected, returned)")
    private String status;

    /** 审批时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审批时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date approveTime;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private String approveRemark;

    public void setId(Long id) 
    {
        this.id = id;
    }

    public Long getId() 
    {
        return id;
    }

    public void setWorklogId(Long worklogId) 
    {
        this.worklogId = worklogId;
    }

    public Long getWorklogId() 
    {
        return worklogId;
    }

    public void setStep(Long step) 
    {
        this.step = step;
    }

    public Long getStep() 
    {
        return step;
    }

    public void setApproverId(String approverId) 
    {
        this.approverId = approverId;
    }

    public String getApproverId() 
    {
        return approverId;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setApproveTime(Date approveTime) 
    {
        this.approveTime = approveTime;
    }

    public Date getApproveTime() 
    {
        return approveTime;
    }

    public void setApproveRemark(String approveRemark) 
    {
        this.approveRemark = approveRemark;
    }

    public String getApproveRemark() 
    {
        return approveRemark;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("worklogId", getWorklogId())
            .append("step", getStep())
            .append("approverId", getApproverId())
            .append("status", getStatus())
            .append("approveTime", getApproveTime())
            .append("approveRemark", getApproveRemark())
            .append("createTime", getCreateTime())
            .toString();
    }
}
